Packet data protocols are well known for carrying communications between two or more entities. A wide range of packet data protocols exist, each having advantages in different circumstances.
In many situations an assumption can be made in advance about the physical link over which a packet data protocol will be used. The protocol may be designed for use with a certain number of wires or with a certain expectation as to the available bandwidth. However, it is sometimes desirable for a device to be capable of using the same protocol to communicate with a range of other entities which support different physical links. For example, in the case of an integrated circuit (IC) module, it may be desirable for the same (or essentially the same) hardware module to be capable of being incorporated in a range of different composite ICs, for example system-on-chip ICs. It might not be known in advance what physical communication interfaces are provided by the other modules on the composite IC. Similarly, it might not be known in advance what physical off-chip communication interfaces will be available on the IC. In order for the module in question to be able to communicate without adaptation in a wide range of physical environments it would be preferable for the module to support a communication protocol that can operate over a range of physical interfaces. Similar considerations apply in other situations where a component might be required to be used in a non-standardised environment.
One particular complication when a protocol is intended to be used over a range of different physical links is that it may be unclear in advance whether a sideband will be available to provide indications of how the data is segmented. Another complication is that it may be unclear in advance what physical resources are available to support acknowledgement messages or retransmission requests.
Protocols already exist for passing serial communications on integrated circuits in particular. Examples include I2C, MDIO and SWD. However, these have various disadvantages. For example all those three protocols have a substantial encapsulation overhead that can reduce throughput. Packets of those protocols include headers that specify information such as type (e.g. read/write), destination address and other information; and also provide for data to be sent to delineate the start and end of packets.
There is a need for an alternative protocol for transmitting data, for example to improve the efficiency of data transmission.